1. 解决DOS攻击
写一个Shell脚本解决类DDoS攻击的生产案例。请根据Web日志或系统网络连接数,监控某个IP的并发连接数,若短时间内PV达到100,即调用防火墙命令封掉对应的IP。防火墙命令为:iptables -I INPUT -s IP地址 -j DROP
2. 参考答案1
先分析Web日志,可以每分钟或每小时分析一次,这里给出按小时处理的方法。可以将日志按小时进行分割,分成不同的文件,根据分析结果把PV数高的单IP封掉。例如,每小时单IP的PV数超过500,则即刻封掉,这里简单地把日志的每一行近似看作一个PV,实际工作中需要计算实际页面的数量,而不是请求页面元素的数量,另外,很多公司都是以NAT形式上网的,因此每小时单IP的PV数超过多少就会被封掉,还要根据具体的情况具体分析,本体仅给出一个实现的案例,在以后参考的时候需要考虑自身网站的业务去使用。
脚本如下:
3. 参考答案2
分析Linux系统的网络连接数,而不是分析Web日志。
设计思路:
首先要分析单IP占网络连接数的情况,即取当前网络连接状体为ESTABLISHED的行数,然后分析对应客户端列不通IP连接数量的排序,对排序比较高的IP进行封堵。
脚本如下:
提示:对于分钟级别的频率任务,也可以不用while,而用定时任务来实现。
4. 参考答案3
此解决问题的方案和答案2一样,只不过它的写法更专业,分模块实现的。脚本如下: